It is generally desirable for routes in a network to be symmetric. Routes are also commonly referred to as paths, and a given route will typically comprise multiple links. Routes between two points A and B in a network may be considered symmetric if, for example, the sequence of routers traversed by a forward flow from point A to point B is the same as the reversed sequence of routers traversed by the reverse flow from point B to point A. Networks are designed with symmetric routes for simplicity and in order to facilitate troubleshooting. Also, use of asymmetric routing can lead to connectivity issues and other performance problems. For example, a filter or firewall may block a forward or reverse flow in the absence of an appropriate corresponding flow in the opposite direction.
A network engineer attempting to troubleshoot a given end-to-end network performance problem will typically first attempt to determine if the corresponding forward and reverse routes are symmetric, or will alternatively work under an assumption that the forward and reverse routes are symmetric.
A conventional approach to determining if forward and reverse routes between points A and B are symmetric is to run a software program known as “traceroute” at both point A and point B. This program is also commonly referred to as the traceroute utility. The traceroute program run at point A characterizes the forward route from A to B, and the traceroute program run at point B characterizes the reverse route from B to A. The traceroute program traces the hops on a route from a source to a destination using the Time-To-Live (TTL) field of transmitted packets. In accordance with standard Internet protocol (IP) operation, each router receiving a packet will decrement the TTL field of that packet before forwarding it on to the next router. If a given router receives a packet with a TTL field having a value of one, and that router is not the destination of the packet, the given router discards the packet and sends an Internet Control Message Protocol (ICMP) port unreachable message back to the source. The traceroute program sends packets with monotonically increasing values in their respective TTL fields. For each TTL value, three packets are typically sent by default. This process continues until the packets sent with a given TTL value reach the destination and therefore do not trigger an ICMP port unreachable message. Asymmetric routes can be readily detected by comparing the outputs generated by the traceroute programs run at points A and B.
Unfortunately, this conventional approach has a serious drawback, in that it requires that the traceroute program be run at both points A and B. However, the network engineer attempting to detect route asymmetry between points A and B may have access to only one of the points, for example, due to device access restrictions within large network environments or within the Internet itself. If the engineer cannot run the traceroute program at both points, he or she cannot determine the asymmetry of the routes of interest.
Accordingly, a need exists for an improved approach to detecting asymmetric routes in a network, which can be implemented with access to only a single end point of the particular routes in question.